-
Notifications
You must be signed in to change notification settings - Fork 39
Avoid partial use of a Riesz map in TAO optimizers #240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Avoid partial use of a Riesz map in TAO optimizers #240
Conversation
|
From Maybe we should have a |
624244f to
28d0208
Compare
|
It's used elsewhere too, the |
|
Good point, I was mislead by the comments. I have zero knowledge of bounds constrained Krylov methods so I can't comment on what should happen there. In any case, I think that the amount of discussion there has been about Riesz maps + various optimisation methods is telling us that there should be at least a bit of exposition in the |
Yes, it should be a Riesz map shift. My preference would be to stick to the PETSc defaults where we can't configure the Riesz map, but agreed documentation for this would be good. |
Right, so currently shifting is not valid. Although possibly it wouldn't be too difficult to add by modifying what
Fair enough, I think there's a balance between trying to do the right thing by default ourselves and principle of least surprise when looking at the TAO docs.
For now please can you add a note to the docstring just saying that the GradientNorm is only set for LMVM and BLMVM, and that Riesz map support is known to be incomplete elsewhere so alternative methods are used at the users peril.
Actually, please can you add the kwarg below so we (I) have an escape hatch to use the Riesz map to check convergence but set the right options to prevent shifting.
|
|
Sorry to keep nitpicking but please can we have a way to force the gradient norm to be set? Otherwise it'll be impossible to use the riesz-mapped gradient to test convergence with Newton. |
Only set the gradient norm for cases where the Riesz map is configured elsewhere.
NLSseems to use the gradient norm, even though the optimizer is not fully configured to use the Riesz map, e.g. the identity perturbation at https://petsc.org/release/manual/tao/#newton-line-search-method-nls.Includes #239, which should be reviewed/merged first.